package com.isoft.utils;

import org.mindrot.jbcrypt.BCrypt;

public class BCryptUtils {

    /**
     * 生成盐值
     * @return 盐值字符串
     */
    public static String generateSalt() {
        // 使用默认的log_rounds（10）
        return BCrypt.gensalt();
    }

    /**
     * 生成加密密码
     * @param password 明文密码
     * @return 加密后的密码
     */
    public static String encryptPassword(String password) {
        return BCrypt.hashpw(password, generateSalt());
    }

    /**
     * 验证密码是否正确
     * @param plaintext 明文密码
     * @param hashed 密文
     * @return 如果密码正确返回true，否则返回false
     */
    public static boolean verifyPassword(String plaintext, String hashed) {
        return BCrypt.checkpw(plaintext, hashed);
    }

}
